1. Field of the Invention
The present invention relates generally to browsers and browser functionality, and, specifically, to an architecture and method for capturing, storing, streaming and associating ink with elements on web pages using digital ink.
2. Description of the Related Art
The technology of computing and the technology of communication have been going through a process of merging together—a process in which the distinctions between the technologies of the telephone, the television, the personal computer, the Internet, and the cellular phone are increasingly blurred, if not meaningless. The functionalities of what were once separate devices are now freely shared between and among devices. One's cellular phone can surf the Internet, while one's personal computer (PC) can make telephone calls. Part of this synergistic merging and growth of technology is the rapidly expanding use of the “browser” for accessing any type of data, or performing any type of activity.
The public was introduced to the “web browser” in the form of Netscape Navigator™ in the mid-1990's. The ancestor of the Netscape Navigator™ was the NCSA Mosaic, a form of “browser” originally used by academics and researchers as a convenient way to present and share information. At that point, the web browser was basically a relatively small program one could run on one's PC that made the accessing and viewing of information and media over a network relatively easy (and even pleasant). With the establishment of a common format (HTML—Hypertext Markup Language) and communication protocol (HTTP—Hypertext Transport Protocol), anyone could make a “web page” residing on the World Wide Web, a web page that could be transmitted, received, and viewed on any web browser. Web browsers rapidly grew into a new form of entertainment media, as well as a seemingly limitless source of information and, for some, self-expression. The Internet, a vast worldwide collection of computer networks linked together, each network using the IP/TCP (Internet Protocol/Transmission Control Protocol) suite to communicate, experienced exponential growth because of its most popular service—the World Wide Web.
Current web browsers, such as Safari (from Apple), Internet Explorer (from Microsoft), Mozilla, Opera, etc., serve as the gateway for many people to their daily source of news, information, and entertainment. Users “surf the Web”, i.e., download data from different sources, by entering URLs (Uniform Resource Locators) that indicate the location of the data source. In this application, URLs are considered in their broadest aspect, as addresses for data sources where the address may indicate a web server on the Internet, a memory location of another PC on a local area network (LAN), or even a driver, program, resource, or memory location within the computer system that is running the web browser. Most web browsers simplify the process of entering the URL by saving “bookmarks” that allow the user to navigate to a desired web page by simply clicking the bookmark. In addition, a user may click on a hyperlink embedded in a web page in the web browser in order to navigate to another web page.
As stated above, web pages are transmitted and received using HTTP, while the web pages themselves are written in HTML. The “hypertext” in HTML refers to the content of web pages—more than mere text, hypertext (sometimes referred to as “hypermedia”) informs the web browser how to rebuild the web page, and provides for hyperlinks to other web pages, as well as pointers to other resources. HTML is a “markup” language because it describes how documents are to be formatted. Although all web pages are written in a version of HTML (or other similar markup languages), the user never sees the HTML, but only the results of the HTML instructions. For example, the HTML in a web page may instruct the web browser to retrieve a particular photograph stored at a particular location, and show the photograph in the lower left-hand corner of the web page. The user, on the other hand, only sees the photograph in the lower left-hand corner.
As mentioned above, web browsers are undergoing a transformation from being a means for browsing web pages on the World Wide Web to a means for accessing practically any type of data contained in any type of storage location accessible by the browser. On a mundane level, this can be seen in new versions of popular computer operation systems, such as Microsoft Windows, where the resources on the computer are “browsed” using Windows Explorer, which behaves essentially as a browser (i.e., it uses the same control features: “back” and “forward” buttons, hyperlinks, etc.), or at large corporations where employees access company information, reports, and databases using their web browsers on the corporation's intranet.
On a more elevated level, the transformation of browsers can be seen in the planned growth from HTML to XHTML, in which HTML becomes just a variant of XML (extensible Markup Language). A simple way to understand the difference between the two markup languages is that HTML was designed to display data and focus on how data looks, whereas XML was designed to describe data and focus on what data is. The two markup languages are not opposed, but complementary. XML is a universal storage format for data, any type of data, and files stored in XML can be ported between different hardware, software, and programming languages. The expectation is that most database records will be translated into XML format in the coming years.
In the future, browsers will become universal portals into any type of stored data, including any form of communication and/or entertainment. And, as mentioned above, as technologies merge, browsers will be used more and more as the means for interacting with our devices, tools, and each other. Therefore, there is a need for systems and methods that can aid in this merging of technologies; and, in particular, systems and methods that help the browser user interact seamlessly with the browser and, through the browser, with any devices and/or technologies connected to the computer system on which the browser is running. The present application should be read in this light, i.e., although ‘web’ browsers and ‘web’ documents are discussed herein, these are exemplary embodiments, and the present invention is intended to apply to any type of browser technology, running on any type of device or combination of devices.
In this progression towards a completely digital environment (i.e., an environment where people relate to media, data, and devices through browsers), many of the traditional means for interacting with paper documents are being emulated on browsers showing digital documents. For example, human beings have used pencils or pens to mark up paper documents for hundreds of years, to the extent that it has become one of the most intuitive means by which human beings interact with data. The acts of jotting down notes in the margin of a document, underlining textual material in a book, circling text or images (or portions thereof) in a magazine, or sketching out diagrams in the white space on a memo from a colleague—all the various forms of annotating data in paper form—are second nature to most. The capability of interacting with digital data with this same ease is both desirable and necessary in a completely digital environment.
This application will focus on the realization of this ink/pen annotation functionality in a browser that accesses digital data. The terms “ink annotation” and “pen annotation” will be used herein to refer to this functionality in a digital environment, even though such functionality may be implemented using input devices that, of course, do not use ink and/or using input devices that may not resemble a pen in any way (such as a mouse, a touchpad, or even a microphone receiving voice commands). Furthermore, the word “ink” will be used as a noun or verb referring to the appearance of a drawn line or shape as reproduced in a browser graphical user interface (GUI).
Examples of digital ink annotation are shown in FIGS. 1A-1E. FIG. 1A shows an example of a digital ink annotation in the form of a freeform sketch on a digital document. Specifically, a portion of a digital document, in this case, a web page, consists of an article comprising text 10 and a photograph 20. The user has underlined some 11 of the text 10, and has drawn a line from the underlined text to a circled portion 21 of the photograph 20. FIG. 1B shows an example of a digital ink annotation in the form of a margin annotation; specifically, a line 30 indicating some text. FIG. 1C shows an example of a digital ink annotation in the form of an underlined annotation 40 of text. FIG. 1D shows an example of a digital ink annotation in the form of an enclosure annotation; specifically, a line 50 forms a circle around some text. FIG. 1E shows an example of a digital ink annotation in the form of handwritten notes in the white space; specifically, the comment “See, Good Ads” 60 is written next to some text on a web page.
The possibilities for digital ink annotation extend beyond the mere emulation of annotations as made by pen or pencil on paper. Because digital ink annotations are stored as digital data, which can be easily modified or otherwise manipulated, a system for digital ink annotation could provide the ability to add, move, or delete any digital annotation at will. The various characteristics and attributes of a digital ink annotation (such as color, size, text, and visibility) could also be readily modified. Furthermore, these digital ink annotations could be hyperlinked—linked to pages in image documents, to other files on the user's system, to Universal Resource Locators (URLs) on the World Wide Web, or to other annotations, whether in ink or not.
In the past, there was a lack of appropriate technology to realize effective digital ink or pen annotation. For example, the standard physical interface for personal computers, the mouse, was not a convenient input device for digital annotations. In addition to the lack of hardware, there was also a lack of software, such as appropriate graphical user interfaces (GUIs), architectures, and software tools. Now appropriate hardware is readily available, such as touch-sensitive screens or stylus and touchpad input systems. On the other hand, although there are now software systems for digital ink annotation, there is still a lack of appropriate software for realizing a comprehensive ink annotation and manipulation framework for browsers.
Current digital annotation systems range from straightforward architectures that personalize web pages with simple locally stored annotations to complex collaboration systems involving multiple servers and clients (e.g., discussion servers). These existing systems offer various annotation capabilities, such as highlighting text within a web document, adding popup notes at certain points, and/or creating annotated links to other resources. See, e.g., the Webhighlighter project as described in P. Phillippot, “Where Did I Read That?” PC magazine, Apr. 9, 2002; L. Denoue and L. Vignollet, “An annotation tool for Web Browsers and its applications to information retrieval” in Proc. of RIAO 2000, Paris, April 2000; and A. Phelps and R. Wilensky, “Multivalent Annotations” in Proc. of First European Conference on Research and Advanced Technology for Digital Libraries, Pisa, Italy, September 1997. All of these references are hereby incorporated by reference in their entireties.
However, except for the limited capability of highlighting text, those prior art digital annotation systems do not provide a true digital ink annotation capability in a browser, where the user can draw lines, shapes, marks, handwritten notes, and/or other freeform objects directly on a digital document, and have the drawn digital ink annotation stored in such a way that it can be accurately reproduced by another browser running on another device.
There are some digital annotation systems which offer basic pen functions like rendering static ink on top of an application GUI or a web page, but their support for a general purpose association between a digital ink annotation and the digital document being annotated is minimal. For example, U.S. Pat. Pub. No. 2003/0217336 describes software for emulating ink annotations by a pen when using a stylus with the touch-sensitive surface of a tablet personal computer (PC). However, the described invention is an operating system application programming interface (API) which is used by the operating system to provide input ink to particular programs, it is neither concerned with, nor directed to, the association between the input ink and a digital document as it appears in a browser GUI running on the tablet PC. For another example, the iMarkup server and client system from iMarkup Solutions, Inc. (Vista, Calif.) renders static ink on top of a web page; however, the iMarkup system does not associate the rendered ink with the web page in such a way that changes to the web page will be reflected by corresponding changes to the digital ink annotation. Furthermore, the iMarkup system does not take into account the changes in rendering necessary in reproducing the digital ink annotation in another type of web browser, or in a web browser window which has changed its size or dimensions. See also U.S. Pat. Pub. No. 2003/0215139 which describes the analysis and processing of digital ink at various sizes and orientations; and G. Golovchinsky and L. Denoue, “Moving Markup: Repositioning Freeform Annotations” in Proc. of SIGCHI, pages 21-30, 2002. All of these references are hereby incorporated by reference in their entireties.
A general purpose association between a digital ink annotation and the digital document being annotated (hereinafter also referred to as a “general purpose ink association”) must take into account the dynamic nature of digital documents as they are being accessed through a browser. Furthermore, a general purpose ink association must address the variations in rendering caused by using different browsers or different devices (e.g., with display screens ranging from pocket-sized to wall-sized). The meaning of digital ink, like real ink, typically depends on its exact position relative to the elements on the digital document it is annotating. A shift in position by a few pixels when re-rendering a digital ink annotation on a digital document in a browser could make the ink annotation awkward, confusing, or meaningless. However, the elements in a digital document, such as a web page, can dynamically change attributes, such as position, shape, and alignment. For example, the layout of a web page may change when rendered (i) after the resizing of the web browser window; (ii) by a different web browser; (iii) by a browser running on a different device (e.g., a PDA versus a PC); (iv) with variations in font size and content; and (v) after a change in style sheet rules. In any of these situations, the digital ink annotation could be rendered out of position relative to the elements on the document. Thus, a general purpose ink association must provide for the optimal re-positioning, or re-rendering, of the digital ink annotation in relation to the relevant elements in the annotated digital document.
There is a need for a general purpose association between the digital ink annotation and the digital document being annotated, where such a general purpose association allows for both the dynamic nature and the rendering variations caused by using different browsers and different devices. Specifically, there is a need for a system and method for robustly capturing and associating digital ink annotations with elements within a digital document, such as a web page, as well as providing efficient, standardized storage for said robust digital ink association.